获取最大值对应的索引

要获取 C#中一个数组或集合中最大值对应的索引,可以使用以下方法:

 // 定义一个数组
 int[] numbers = { 10, 20, 30, 40, 50 };

 // 获取最大值
 int max = numbers.Max();

 // 获取最大值的索引
 int index = Array.IndexOf(numbers, max);

 // 输出最大值和对应的索引
 Console.WriteLine("最大值为:" + max);
 Console.WriteLine("最大值的索引为:" + index);

在上面的代码中,首先定义了一个整数数组 numbers,然后使用 Max() 方法获取数组中的最大值。接着使用 Array.IndexOf() 方法获取最大值在数组中的索引,最后输出最大值和对应的索引。

需要注意的是,如果数组中有多个相同的最大值,上面的方法将只返回其中一个最大值的索引。如果需要获取所有最大值的索引,可以使用 LinqSelect() 方法来实现:

 // 定义一个数组
 int[] numbers = { 10, 20, 30, 40, 50, 50 };

 // 获取最大值
 int max = numbers.Max();

 // 获取所有最大值的索引
 var indexes = numbers.Select((value, index) => new { Value = value, Index = index })
                   .Where(pair => pair.Value == max)
                   .Select(pair => pair.Index)
                   .ToArray();

 // 输出最大值和对应的索引
 Console.WriteLine("最大值为:" + max);
 Console.WriteLine("所有最大值的索引为:" + string.Join(", ", indexes));

在上面的代码中,使用 Select() 方法将数组中的每个元素和对应的索引组合成一个匿名对象。接着使用 Where() 方法筛选出所有值等于最大值的元素,最后使用 Select() 方法将匿名对象转换为索引数组。最终输出所有最大值的索引。